package org.aurora.remote;

import org.aurora.remote.protocol.RemoteRequest;
import org.aurora.remote.protocol.RemoteResponse;

public interface RemoteService<T extends RemoteConnectionEventManager> {
    void start() throws InterruptedException;

    void shutdown();

    void registerProcessor(int commandCode, RemoteProcessor<RemoteRequest, RemoteResponse> processor);

    void registerEventManager(T remoteConnectionEventManager);
}
